page.tsx 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. import { PayDataType } from "@/api/promo";
  2. import DomainFooter from "@/components/DomainFooter";
  3. import { Link } from "@/i18n/routing";
  4. import { server } from "@/utils/server";
  5. import Image from "next/image";
  6. import { Download, DownNumber } from "./DownNumber";
  7. const getActivityApi = () => {
  8. return server
  9. .request<PayDataType>({
  10. url: "/v1/api/front/activity/pay",
  11. method: "post",
  12. })
  13. .then((res) => {
  14. return !Array.isArray(res.data) ? res.data.first_pay || [] : [];
  15. })
  16. .catch((e) => {
  17. return [];
  18. });
  19. };
  20. const getUserRegTypeFreeStatusApi = () => {
  21. return server
  22. .request<any>({
  23. url: "/v1/api/user/user_reg_type_free_status",
  24. method: "post",
  25. })
  26. .then((res) => {
  27. return res.data;
  28. })
  29. .catch((e) => {
  30. return {};
  31. });
  32. };
  33. const Page = async () => {
  34. const activities = await getActivityApi();
  35. const config = await getUserRegTypeFreeStatusApi();
  36. /// 如果数组不为空, 则有活动
  37. const hasEndTimeActivities = activities.length > 0;
  38. const current = activities.find((item) => item.end_time > 0)?.end_time;
  39. const endtime = current ? current * 1000 : 0;
  40. return (
  41. <>
  42. <div className={"flex flex-col [min-height:calc(100%-0.81rem)]"}>
  43. <div className={"flex-1"}>
  44. <div className={"mb-[0.2778rem] mt-[0.2083rem] flex flex-col items-center"}>
  45. <Image
  46. src={"/recharge/success.png"}
  47. alt={"success"}
  48. width={80}
  49. height={80}
  50. />
  51. <h1 className={"mt-[0.2083rem] font-bold"}>Parabéns</h1>
  52. <p className={"mt-[5px] text-[0.12rem]"}>
  53. Sua conta foi criada com sucesso.
  54. </p>
  55. </div>
  56. <div
  57. className={
  58. "relative m-[0.0694rem] rounded-[10px] bg-gradient-to-b" +
  59. " from-[#f8e4bf] to-[#f2ae38] p-[0.1389rem]"
  60. }
  61. >
  62. <div className={"absolute -top-[0.12rem] left-1/2 -translate-x-1/2"}>
  63. <Image
  64. src={"/recharge/title_bg.png"}
  65. alt={"Novo Usuário"}
  66. width={300}
  67. height={160}
  68. />
  69. <span
  70. className={
  71. "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2" +
  72. " text-[0.125rem] font-bold text-[#ff7301]"
  73. }
  74. >
  75. Novo Usuário
  76. </span>
  77. </div>
  78. {hasEndTimeActivities && (
  79. <div
  80. className={
  81. "mt-[0.2778rem] flex rounded-[0.0347rem] bg-[#fbe6c6]" +
  82. " p-[0.0694rem]" +
  83. " items-center text-[#000]"
  84. }
  85. >
  86. <div>
  87. <Image
  88. src={"/recharge/activity-1.png"}
  89. alt={"activity-1"}
  90. width={80}
  91. height={40}
  92. />
  93. </div>
  94. <div className={"ml-[20px] w-[100%]"}>
  95. <div className={"flex items-center"}>
  96. <div className={"flex-1"}>
  97. {endtime ? <DownNumber endTime={endtime} /> : null}
  98. </div>
  99. <Link href={"/deposit"}>
  100. <div
  101. className={
  102. "bg-[url(/recharge/button-1.png)] " +
  103. " bg-[length:100%_100%] bg-no-repeat" +
  104. " h-[0.4167rem] w-[0.8333rem] pt-[0.0347rem]"
  105. }
  106. >
  107. <span
  108. className={
  109. "flex items-center text-[0.125rem]" +
  110. " font-bold" +
  111. " justify-center text-[#fff]"
  112. }
  113. >
  114. Deposito
  115. </span>
  116. </div>
  117. </Link>
  118. </div>
  119. <div>
  120. No primeiro depósito acima de 5 BRL, você pode receber um bônus de 100%. Válido por 5 horas
  121. </div>
  122. </div>
  123. </div>
  124. )}
  125. {/* 2*/}
  126. <div
  127. className={
  128. "mt-[10px] flex rounded-[0.0347rem] bg-[#fbe6c6]" +
  129. " p-[0.0694rem]" +
  130. " items-center justify-between text-[#000]"
  131. }
  132. >
  133. <Image
  134. src={
  135. hasEndTimeActivities
  136. ? "/recharge/activity-2.png"
  137. : "/recharge/activity-1.png"
  138. }
  139. alt={"activity-1"}
  140. width={60}
  141. height={40}
  142. />
  143. <div className={"ml-[20px] flex-1"}>ADICIONAR À TELA INICIAL</div>
  144. <Download />
  145. </div>
  146. {/* 3 */}
  147. {config.status && (
  148. <div
  149. className={
  150. "mt-[10px] flex rounded-[0.0347rem] bg-[#fbe6c6]" +
  151. " p-[0.0694rem]" +
  152. " items-center text-[#000]"
  153. }
  154. >
  155. <div>
  156. <Image
  157. src={
  158. hasEndTimeActivities
  159. ? "/recharge/activity-3.png"
  160. : "/recharge/activity-2.png"
  161. }
  162. alt={"activity-3"}
  163. width={80}
  164. height={40}
  165. />
  166. </div>
  167. <div className={"ml-[20px] w-[100%]"}>
  168. <div className={"flex items-center"}>
  169. <div className={"flex-1"}>De registo prémios</div>
  170. <Link href={"/freeGames"}>
  171. <div
  172. className={
  173. "bg-[url(/recharge/button-1.png)] " +
  174. " bg-[length:100%_100%] bg-no-repeat" +
  175. " h-[0.4167rem] w-[0.8333rem] pt-[0.0347rem]"
  176. }
  177. >
  178. <span
  179. className={
  180. "flex items-center text-[0.125rem]" +
  181. " font-bold" +
  182. " justify-center text-[#fff]"
  183. }
  184. >
  185. Jogo
  186. </span>
  187. </div>
  188. </Link>
  189. </div>
  190. <div>
  191. <span className={"font-bold text-[red]"}>{config?.data?.amount ?? 0}</span> grátis para começar a jogar
  192. imediatamente
  193. </div>
  194. </div>
  195. </div>
  196. )}
  197. </div>
  198. </div>
  199. <div className={"flex w-[100%] justify-between p-[10px]"}>
  200. <Link href={"/"} className={"text-primary-color"}>
  201. <span className={"iconfont icon-xiangzuo1"}></span>
  202. Inicio
  203. </Link>
  204. <Link href={"/deposit"} className={"text-primary-color"}>
  205. Depósito
  206. <span className={"iconfont icon-xiangyou1"}></span>
  207. </Link>
  208. </div>
  209. </div>
  210. <div className={"h-[0.81rem]"}>
  211. <DomainFooter />
  212. </div>
  213. </>
  214. );
  215. };
  216. export default Page;